home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / mac / DirectX SDK / DXSDK / include / mediaobj.h < prev    next >
C/C++ Source or Header  |  2001-10-08  |  47KB  |  1,575 lines

  1.  
  2. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  3.  
  4. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  5.  
  6.  
  7.  /* File created by MIDL compiler version 6.00.0347 */
  8. /* Compiler settings for mediaobj.idl:
  9.     Oicf, W1, Zp8, env=Win32 (32b run)
  10.     protocol : dce , ms_ext, c_ext, robust
  11.     error checks: allocation ref bounds_check enum stub_data 
  12.     VC __declspec() decoration level: 
  13.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  14.          DECLSPEC_UUID(), MIDL_INTERFACE()
  15. */
  16. //@@MIDL_FILE_HEADING(  )
  17.  
  18.  
  19. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  20. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  21. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  22. #endif
  23.  
  24. #include "rpc.h"
  25. #include "rpcndr.h"
  26.  
  27. #ifndef __RPCNDR_H_VERSION__
  28. #error this stub requires an updated version of <rpcndr.h>
  29. #endif // __RPCNDR_H_VERSION__
  30.  
  31. #ifndef COM_NO_WINDOWS_H
  32. #include "windows.h"
  33. #include "ole2.h"
  34. #endif /*COM_NO_WINDOWS_H*/
  35.  
  36. #ifndef __mediaobj_h__
  37. #define __mediaobj_h__
  38.  
  39. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  40. #pragma once
  41. #endif
  42.  
  43. /* Forward Declarations */ 
  44.  
  45. #ifndef __IMediaBuffer_FWD_DEFINED__
  46. #define __IMediaBuffer_FWD_DEFINED__
  47. typedef interface IMediaBuffer IMediaBuffer;
  48. #endif     /* __IMediaBuffer_FWD_DEFINED__ */
  49.  
  50.  
  51. #ifndef __IMediaObject_FWD_DEFINED__
  52. #define __IMediaObject_FWD_DEFINED__
  53. typedef interface IMediaObject IMediaObject;
  54. #endif     /* __IMediaObject_FWD_DEFINED__ */
  55.  
  56.  
  57. #ifndef __IEnumDMO_FWD_DEFINED__
  58. #define __IEnumDMO_FWD_DEFINED__
  59. typedef interface IEnumDMO IEnumDMO;
  60. #endif     /* __IEnumDMO_FWD_DEFINED__ */
  61.  
  62.  
  63. #ifndef __IMediaObjectInPlace_FWD_DEFINED__
  64. #define __IMediaObjectInPlace_FWD_DEFINED__
  65. typedef interface IMediaObjectInPlace IMediaObjectInPlace;
  66. #endif     /* __IMediaObjectInPlace_FWD_DEFINED__ */
  67.  
  68.  
  69. #ifndef __IDMOQualityControl_FWD_DEFINED__
  70. #define __IDMOQualityControl_FWD_DEFINED__
  71. typedef interface IDMOQualityControl IDMOQualityControl;
  72. #endif     /* __IDMOQualityControl_FWD_DEFINED__ */
  73.  
  74.  
  75. #ifndef __IDMOVideoOutputOptimizations_FWD_DEFINED__
  76. #define __IDMOVideoOutputOptimizations_FWD_DEFINED__
  77. typedef interface IDMOVideoOutputOptimizations IDMOVideoOutputOptimizations;
  78. #endif     /* __IDMOVideoOutputOptimizations_FWD_DEFINED__ */
  79.  
  80.  
  81. /* header files for imported files */
  82. #include "unknwn.h"
  83. #include "objidl.h"
  84.  
  85. #ifdef __cplusplus
  86. extern "C"{
  87. #endif 
  88.  
  89. void * __RPC_USER MIDL_user_allocate(size_t);
  90. void __RPC_USER MIDL_user_free( void * ); 
  91.  
  92. /* interface __MIDL_itf_mediaobj_0000 */
  93. /* [local] */ 
  94.  
  95. #ifdef __strmif_h__
  96. typedef AM_MEDIA_TYPE DMO_MEDIA_TYPE;
  97. #else
  98. typedef struct _DMOMediaType
  99.     {
  100.     GUID majortype;
  101.     GUID subtype;
  102.     BOOL bFixedSizeSamples;
  103.     BOOL bTemporalCompression;
  104.     ULONG lSampleSize;
  105.     GUID formattype;
  106.     IUnknown *pUnk;
  107.     ULONG cbFormat;
  108.     /* [size_is] */ BYTE *pbFormat;
  109.     }     DMO_MEDIA_TYPE;
  110.  
  111. typedef LONGLONG REFERENCE_TIME;
  112.  
  113. #endif
  114.  
  115. enum _DMO_INPUT_DATA_BUFFER_FLAGS
  116.     {    DMO_INPUT_DATA_BUFFERF_SYNCPOINT    = 0x1,
  117.     DMO_INPUT_DATA_BUFFERF_TIME    = 0x2,
  118.     DMO_INPUT_DATA_BUFFERF_TIMELENGTH    = 0x4
  119.     } ;
  120.  
  121. enum _DMO_OUTPUT_DATA_BUFFER_FLAGS
  122.     {    DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT    = 0x1,
  123.     DMO_OUTPUT_DATA_BUFFERF_TIME    = 0x2,
  124.     DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH    = 0x4,
  125.     DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE    = 0x1000000
  126.     } ;
  127.  
  128. enum _DMO_INPUT_STATUS_FLAGS
  129.     {    DMO_INPUT_STATUSF_ACCEPT_DATA    = 0x1
  130.     } ;
  131.  
  132. enum _DMO_INPUT_STREAM_INFO_FLAGS
  133.     {    DMO_INPUT_STREAMF_WHOLE_SAMPLES    = 0x1,
  134.     DMO_INPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER    = 0x2,
  135.     DMO_INPUT_STREAMF_FIXED_SAMPLE_SIZE    = 0x4,
  136.     DMO_INPUT_STREAMF_HOLDS_BUFFERS    = 0x8
  137.     } ;
  138.  
  139. enum _DMO_OUTPUT_STREAM_INFO_FLAGS
  140.     {    DMO_OUTPUT_STREAMF_WHOLE_SAMPLES    = 0x1,
  141.     DMO_OUTPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER    = 0x2,
  142.     DMO_OUTPUT_STREAMF_FIXED_SAMPLE_SIZE    = 0x4,
  143.     DMO_OUTPUT_STREAMF_DISCARDABLE    = 0x8,
  144.     DMO_OUTPUT_STREAMF_OPTIONAL    = 0x10
  145.     } ;
  146.  
  147. enum _DMO_SET_TYPE_FLAGS
  148.     {    DMO_SET_TYPEF_TEST_ONLY    = 0x1,
  149.     DMO_SET_TYPEF_CLEAR    = 0x2
  150.     } ;
  151.  
  152. enum _DMO_PROCESS_OUTPUT_FLAGS
  153.     {    DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER    = 0x1
  154.     } ;
  155.  
  156.  
  157. extern RPC_IF_HANDLE __MIDL_itf_mediaobj_0000_v0_0_c_ifspec;
  158. extern RPC_IF_HANDLE __MIDL_itf_mediaobj_0000_v0_0_s_ifspec;
  159.  
  160. #ifndef __IMediaBuffer_INTERFACE_DEFINED__
  161. #define __IMediaBuffer_INTERFACE_DEFINED__
  162.  
  163. /* interface IMediaBuffer */
  164. /* [uuid][object] */ 
  165.  
  166.  
  167. EXTERN_C const IID IID_IMediaBuffer;
  168.  
  169. #if defined(__cplusplus) && !defined(CINTERFACE)
  170.     
  171.     MIDL_INTERFACE("59eff8b9-938c-4a26-82f2-95cb84cdc837")
  172.     IMediaBuffer : public IUnknown
  173.     {
  174.     public:
  175.         virtual HRESULT STDMETHODCALLTYPE SetLength( 
  176.             DWORD cbLength) = 0;
  177.         
  178.         virtual HRESULT STDMETHODCALLTYPE GetMaxLength( 
  179.             /* [out] */ DWORD *pcbMaxLength) = 0;
  180.         
  181.         virtual HRESULT STDMETHODCALLTYPE GetBufferAndLength( 
  182.             /* [out] */ BYTE **ppBuffer,
  183.             /* [out] */ DWORD *pcbLength) = 0;
  184.         
  185.     };
  186.     
  187. #else     /* C style interface */
  188.  
  189.     typedef struct IMediaBufferVtbl
  190.     {
  191.         BEGIN_INTERFACE
  192.         
  193.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  194.             IMediaBuffer * This,
  195.             /* [in] */ REFIID riid,
  196.             /* [iid_is][out] */ void **ppvObject);
  197.         
  198.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  199.             IMediaBuffer * This);
  200.         
  201.         ULONG ( STDMETHODCALLTYPE *Release )( 
  202.             IMediaBuffer * This);
  203.         
  204.         HRESULT ( STDMETHODCALLTYPE *SetLength )( 
  205.             IMediaBuffer * This,
  206.             DWORD cbLength);
  207.         
  208.         HRESULT ( STDMETHODCALLTYPE *GetMaxLength )( 
  209.             IMediaBuffer * This,
  210.             /* [out] */ DWORD *pcbMaxLength);
  211.         
  212.         HRESULT ( STDMETHODCALLTYPE *GetBufferAndLength )( 
  213.             IMediaBuffer * This,
  214.             /* [out] */ BYTE **ppBuffer,
  215.             /* [out] */ DWORD *pcbLength);
  216.         
  217.         END_INTERFACE
  218.     } IMediaBufferVtbl;
  219.  
  220.     interface IMediaBuffer
  221.     {
  222.         CONST_VTBL struct IMediaBufferVtbl *lpVtbl;
  223.     };
  224.  
  225.     
  226.  
  227. #ifdef COBJMACROS
  228.  
  229.  
  230. #define IMediaBuffer_QueryInterface(This,riid,ppvObject)    \
  231.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  232.  
  233. #define IMediaBuffer_AddRef(This)    \
  234.     (This)->lpVtbl -> AddRef(This)
  235.  
  236. #define IMediaBuffer_Release(This)    \
  237.     (This)->lpVtbl -> Release(This)
  238.  
  239.  
  240. #define IMediaBuffer_SetLength(This,cbLength)    \
  241.     (This)->lpVtbl -> SetLength(This,cbLength)
  242.  
  243. #define IMediaBuffer_GetMaxLength(This,pcbMaxLength)    \
  244.     (This)->lpVtbl -> GetMaxLength(This,pcbMaxLength)
  245.  
  246. #define IMediaBuffer_GetBufferAndLength(This,ppBuffer,pcbLength)    \
  247.     (This)->lpVtbl -> GetBufferAndLength(This,ppBuffer,pcbLength)
  248.  
  249. #endif /* COBJMACROS */
  250.  
  251.  
  252. #endif     /* C style interface */
  253.  
  254.  
  255.  
  256. HRESULT STDMETHODCALLTYPE IMediaBuffer_SetLength_Proxy( 
  257.     IMediaBuffer * This,
  258.     DWORD cbLength);
  259.  
  260.  
  261. void __RPC_STUB IMediaBuffer_SetLength_Stub(
  262.     IRpcStubBuffer *This,
  263.     IRpcChannelBuffer *_pRpcChannelBuffer,
  264.     PRPC_MESSAGE _pRpcMessage,
  265.     DWORD *_pdwStubPhase);
  266.  
  267.  
  268. HRESULT STDMETHODCALLTYPE IMediaBuffer_GetMaxLength_Proxy( 
  269.     IMediaBuffer * This,
  270.     /* [out] */ DWORD *pcbMaxLength);
  271.  
  272.  
  273. void __RPC_STUB IMediaBuffer_GetMaxLength_Stub(
  274.     IRpcStubBuffer *This,
  275.     IRpcChannelBuffer *_pRpcChannelBuffer,
  276.     PRPC_MESSAGE _pRpcMessage,
  277.     DWORD *_pdwStubPhase);
  278.  
  279.  
  280. HRESULT STDMETHODCALLTYPE IMediaBuffer_GetBufferAndLength_Proxy( 
  281.     IMediaBuffer * This,
  282.     /* [out] */ BYTE **ppBuffer,
  283.     /* [out] */ DWORD *pcbLength);
  284.  
  285.  
  286. void __RPC_STUB IMediaBuffer_GetBufferAndLength_Stub(
  287.     IRpcStubBuffer *This,
  288.     IRpcChannelBuffer *_pRpcChannelBuffer,
  289.     PRPC_MESSAGE _pRpcMessage,
  290.     DWORD *_pdwStubPhase);
  291.  
  292.  
  293.  
  294. #endif     /* __IMediaBuffer_INTERFACE_DEFINED__ */
  295.  
  296.  
  297. /* interface __MIDL_itf_mediaobj_0089 */
  298. /* [local] */ 
  299.  
  300. typedef struct _DMO_OUTPUT_DATA_BUFFER
  301.     {
  302.     IMediaBuffer *pBuffer;
  303.     DWORD dwStatus;
  304.     REFERENCE_TIME rtTimestamp;
  305.     REFERENCE_TIME rtTimelength;
  306.     }     DMO_OUTPUT_DATA_BUFFER;
  307.  
  308. typedef struct _DMO_OUTPUT_DATA_BUFFER *PDMO_OUTPUT_DATA_BUFFER;
  309.  
  310.  
  311.  
  312. extern RPC_IF_HANDLE __MIDL_itf_mediaobj_0089_v0_0_c_ifspec;
  313. extern RPC_IF_HANDLE __MIDL_itf_mediaobj_0089_v0_0_s_ifspec;
  314.  
  315. #ifndef __IMediaObject_INTERFACE_DEFINED__
  316. #define __IMediaObject_INTERFACE_DEFINED__
  317.  
  318. /* interface IMediaObject */
  319. /* [uuid][object] */ 
  320.  
  321.  
  322. EXTERN_C const IID IID_IMediaObject;
  323.  
  324. #if defined(__cplusplus) && !defined(CINTERFACE)
  325.     
  326.     MIDL_INTERFACE("d8ad0f58-5494-4102-97c5-ec798e59bcf4")
  327.     IMediaObject : public IUnknown
  328.     {
  329.     public:
  330.         virtual HRESULT STDMETHODCALLTYPE GetStreamCount( 
  331.             /* [out] */ DWORD *pcInputStreams,
  332.             /* [out] */ DWORD *pcOutputStreams) = 0;
  333.         
  334.         virtual HRESULT STDMETHODCALLTYPE GetInputStreamInfo( 
  335.             DWORD dwInputStreamIndex,
  336.             /* [out] */ DWORD *pdwFlags) = 0;
  337.         
  338.         virtual HRESULT STDMETHODCALLTYPE GetOutputStreamInfo( 
  339.             DWORD dwOutputStreamIndex,
  340.             /* [out] */ DWORD *pdwFlags) = 0;
  341.         
  342.         virtual HRESULT STDMETHODCALLTYPE GetInputType( 
  343.             DWORD dwInputStreamIndex,
  344.             DWORD dwTypeIndex,
  345.             /* [out] */ DMO_MEDIA_TYPE *pmt) = 0;
  346.         
  347.         virtual HRESULT STDMETHODCALLTYPE GetOutputType( 
  348.             DWORD dwOutputStreamIndex,
  349.             DWORD dwTypeIndex,
  350.             /* [out] */ DMO_MEDIA_TYPE *pmt) = 0;
  351.         
  352.         virtual HRESULT STDMETHODCALLTYPE SetInputType( 
  353.             DWORD dwInputStreamIndex,
  354.             /* [in] */ const DMO_MEDIA_TYPE *pmt,
  355.             DWORD dwFlags) = 0;
  356.         
  357.         virtual HRESULT STDMETHODCALLTYPE SetOutputType( 
  358.             DWORD dwOutputStreamIndex,
  359.             /* [in] */ const DMO_MEDIA_TYPE *pmt,
  360.             DWORD dwFlags) = 0;
  361.         
  362.         virtual HRESULT STDMETHODCALLTYPE GetInputCurrentType( 
  363.             DWORD dwInputStreamIndex,
  364.             /* [out] */ DMO_MEDIA_TYPE *pmt) = 0;
  365.         
  366.         virtual HRESULT STDMETHODCALLTYPE GetOutputCurrentType( 
  367.             DWORD dwOutputStreamIndex,
  368.             /* [out] */ DMO_MEDIA_TYPE *pmt) = 0;
  369.         
  370.         virtual HRESULT STDMETHODCALLTYPE GetInputSizeInfo( 
  371.             DWORD dwInputStreamIndex,
  372.             /* [out] */ DWORD *pcbSize,
  373.             /* [out] */ DWORD *pcbMaxLookahead,
  374.             /* [out] */ DWORD *pcbAlignment) = 0;
  375.         
  376.         virtual HRESULT STDMETHODCALLTYPE GetOutputSizeInfo( 
  377.             DWORD dwOutputStreamIndex,
  378.             /* [out] */ DWORD *pcbSize,
  379.             /* [out] */ DWORD *pcbAlignment) = 0;
  380.         
  381.         virtual HRESULT STDMETHODCALLTYPE GetInputMaxLatency( 
  382.             DWORD dwInputStreamIndex,
  383.             /* [out] */ REFERENCE_TIME *prtMaxLatency) = 0;
  384.         
  385.         virtual HRESULT STDMETHODCALLTYPE SetInputMaxLatency( 
  386.             DWORD dwInputStreamIndex,
  387.             REFERENCE_TIME rtMaxLatency) = 0;
  388.         
  389.         virtual HRESULT STDMETHODCALLTYPE Flush( void) = 0;
  390.         
  391.         virtual HRESULT STDMETHODCALLTYPE Discontinuity( 
  392.             DWORD dwInputStreamIndex) = 0;
  393.         
  394.         virtual HRESULT STDMETHODCALLTYPE AllocateStreamingResources( void) = 0;
  395.         
  396.         virtual HRESULT STDMETHODCALLTYPE FreeStreamingResources( void) = 0;
  397.         
  398.         virtual HRESULT STDMETHODCALLTYPE GetInputStatus( 
  399.             DWORD dwInputStreamIndex,
  400.             /* [out] */ DWORD *dwFlags) = 0;
  401.         
  402.         virtual HRESULT STDMETHODCALLTYPE ProcessInput( 
  403.             DWORD dwInputStreamIndex,
  404.             IMediaBuffer *pBuffer,
  405.             DWORD dwFlags,
  406.             REFERENCE_TIME rtTimestamp,
  407.             REFERENCE_TIME rtTimelength) = 0;
  408.         
  409.         virtual HRESULT STDMETHODCALLTYPE ProcessOutput( 
  410.             DWORD dwFlags,
  411.             DWORD cOutputBufferCount,
  412.             /* [size_is][out][in] */ DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,
  413.             /* [out] */ DWORD *pdwStatus) = 0;
  414.         
  415.         virtual HRESULT STDMETHODCALLTYPE Lock( 
  416.             LONG bLock) = 0;
  417.         
  418.     };
  419.     
  420. #else     /* C style interface */
  421.  
  422.     typedef struct IMediaObjectVtbl
  423.     {
  424.         BEGIN_INTERFACE
  425.         
  426.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  427.             IMediaObject * This,
  428.             /* [in] */ REFIID riid,
  429.             /* [iid_is][out] */ void **ppvObject);
  430.         
  431.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  432.             IMediaObject * This);
  433.         
  434.         ULONG ( STDMETHODCALLTYPE *Release )( 
  435.             IMediaObject * This);
  436.         
  437.         HRESULT ( STDMETHODCALLTYPE *GetStreamCount )( 
  438.             IMediaObject * This,
  439.             /* [out] */ DWORD *pcInputStreams,
  440.             /* [out] */ DWORD *pcOutputStreams);
  441.         
  442.         HRESULT ( STDMETHODCALLTYPE *GetInputStreamInfo )( 
  443.             IMediaObject * This,
  444.             DWORD dwInputStreamIndex,
  445.             /* [out] */ DWORD *pdwFlags);
  446.         
  447.         HRESULT ( STDMETHODCALLTYPE *GetOutputStreamInfo )( 
  448.             IMediaObject * This,
  449.             DWORD dwOutputStreamIndex,
  450.             /* [out] */ DWORD *pdwFlags);
  451.         
  452.         HRESULT ( STDMETHODCALLTYPE *GetInputType )( 
  453.             IMediaObject * This,
  454.             DWORD dwInputStreamIndex,
  455.             DWORD dwTypeIndex,
  456.             /* [out] */ DMO_MEDIA_TYPE *pmt);
  457.         
  458.         HRESULT ( STDMETHODCALLTYPE *GetOutputType )( 
  459.             IMediaObject * This,
  460.             DWORD dwOutputStreamIndex,
  461.             DWORD dwTypeIndex,
  462.             /* [out] */ DMO_MEDIA_TYPE *pmt);
  463.         
  464.         HRESULT ( STDMETHODCALLTYPE *SetInputType )( 
  465.             IMediaObject * This,
  466.             DWORD dwInputStreamIndex,
  467.             /* [in] */ const DMO_MEDIA_TYPE *pmt,
  468.             DWORD dwFlags);
  469.         
  470.         HRESULT ( STDMETHODCALLTYPE *SetOutputType )( 
  471.             IMediaObject * This,
  472.             DWORD dwOutputStreamIndex,
  473.             /* [in] */ const DMO_MEDIA_TYPE *pmt,
  474.             DWORD dwFlags);
  475.         
  476.         HRESULT ( STDMETHODCALLTYPE *GetInputCurrentType )( 
  477.             IMediaObject * This,
  478.             DWORD dwInputStreamIndex,
  479.             /* [out] */ DMO_MEDIA_TYPE *pmt);
  480.         
  481.         HRESULT ( STDMETHODCALLTYPE *GetOutputCurrentType )( 
  482.             IMediaObject * This,
  483.             DWORD dwOutputStreamIndex,
  484.             /* [out] */ DMO_MEDIA_TYPE *pmt);
  485.         
  486.         HRESULT ( STDMETHODCALLTYPE *GetInputSizeInfo )( 
  487.             IMediaObject * This,
  488.             DWORD dwInputStreamIndex,
  489.             /* [out] */ DWORD *pcbSize,
  490.             /* [out] */ DWORD *pcbMaxLookahead,
  491.             /* [out] */ DWORD *pcbAlignment);
  492.         
  493.         HRESULT ( STDMETHODCALLTYPE *GetOutputSizeInfo )( 
  494.             IMediaObject * This,
  495.             DWORD dwOutputStreamIndex,
  496.             /* [out] */ DWORD *pcbSize,
  497.             /* [out] */ DWORD *pcbAlignment);
  498.         
  499.         HRESULT ( STDMETHODCALLTYPE *GetInputMaxLatency )( 
  500.             IMediaObject * This,
  501.             DWORD dwInputStreamIndex,
  502.             /* [out] */ REFERENCE_TIME *prtMaxLatency);
  503.         
  504.         HRESULT ( STDMETHODCALLTYPE *SetInputMaxLatency )( 
  505.             IMediaObject * This,
  506.             DWORD dwInputStreamIndex,
  507.             REFERENCE_TIME rtMaxLatency);
  508.         
  509.         HRESULT ( STDMETHODCALLTYPE *Flush )( 
  510.             IMediaObject * This);
  511.         
  512.         HRESULT ( STDMETHODCALLTYPE *Discontinuity )( 
  513.             IMediaObject * This,
  514.             DWORD dwInputStreamIndex);
  515.         
  516.         HRESULT ( STDMETHODCALLTYPE *AllocateStreamingResources )( 
  517.             IMediaObject * This);
  518.         
  519.         HRESULT ( STDMETHODCALLTYPE *FreeStreamingResources )( 
  520.             IMediaObject * This);
  521.         
  522.         HRESULT ( STDMETHODCALLTYPE *GetInputStatus )( 
  523.             IMediaObject * This,
  524.             DWORD dwInputStreamIndex,
  525.             /* [out] */ DWORD *dwFlags);
  526.         
  527.         HRESULT ( STDMETHODCALLTYPE *ProcessInput )( 
  528.             IMediaObject * This,
  529.             DWORD dwInputStreamIndex,
  530.             IMediaBuffer *pBuffer,
  531.             DWORD dwFlags,
  532.             REFERENCE_TIME rtTimestamp,
  533.             REFERENCE_TIME rtTimelength);
  534.         
  535.         HRESULT ( STDMETHODCALLTYPE *ProcessOutput )( 
  536.             IMediaObject * This,
  537.             DWORD dwFlags,
  538.             DWORD cOutputBufferCount,
  539.             /* [size_is][out][in] */ DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,
  540.             /* [out] */ DWORD *pdwStatus);
  541.         
  542.         HRESULT ( STDMETHODCALLTYPE *Lock )( 
  543.             IMediaObject * This,
  544.             LONG bLock);
  545.         
  546.         END_INTERFACE
  547.     } IMediaObjectVtbl;
  548.  
  549.     interface IMediaObject
  550.     {
  551.         CONST_VTBL struct IMediaObjectVtbl *lpVtbl;
  552.     };
  553.  
  554.     
  555.  
  556. #ifdef COBJMACROS
  557.  
  558.  
  559. #define IMediaObject_QueryInterface(This,riid,ppvObject)    \
  560.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  561.  
  562. #define IMediaObject_AddRef(This)    \
  563.     (This)->lpVtbl -> AddRef(This)
  564.  
  565. #define IMediaObject_Release(This)    \
  566.     (This)->lpVtbl -> Release(This)
  567.  
  568.  
  569. #define IMediaObject_GetStreamCount(This,pcInputStreams,pcOutputStreams)    \
  570.     (This)->lpVtbl -> GetStreamCount(This,pcInputStreams,pcOutputStreams)
  571.  
  572. #define IMediaObject_GetInputStreamInfo(This,dwInputStreamIndex,pdwFlags)    \
  573.     (This)->lpVtbl -> GetInputStreamInfo(This,dwInputStreamIndex,pdwFlags)
  574.  
  575. #define IMediaObject_GetOutputStreamInfo(This,dwOutputStreamIndex,pdwFlags)    \
  576.     (This)->lpVtbl -> GetOutputStreamInfo(This,dwOutputStreamIndex,pdwFlags)
  577.  
  578. #define IMediaObject_GetInputType(This,dwInputStreamIndex,dwTypeIndex,pmt)    \
  579.     (This)->lpVtbl -> GetInputType(This,dwInputStreamIndex,dwTypeIndex,pmt)
  580.  
  581. #define IMediaObject_GetOutputType(This,dwOutputStreamIndex,dwTypeIndex,pmt)    \
  582.     (This)->lpVtbl -> GetOutputType(This,dwOutputStreamIndex,dwTypeIndex,pmt)
  583.  
  584. #define IMediaObject_SetInputType(This,dwInputStreamIndex,pmt,dwFlags)    \
  585.     (This)->lpVtbl -> SetInputType(This,dwInputStreamIndex,pmt,dwFlags)
  586.  
  587. #define IMediaObject_SetOutputType(This,dwOutputStreamIndex,pmt,dwFlags)    \
  588.     (This)->lpVtbl -> SetOutputType(This,dwOutputStreamIndex,pmt,dwFlags)
  589.  
  590. #define IMediaObject_GetInputCurrentType(This,dwInputStreamIndex,pmt)    \
  591.     (This)->lpVtbl -> GetInputCurrentType(This,dwInputStreamIndex,pmt)
  592.  
  593. #define IMediaObject_GetOutputCurrentType(This,dwOutputStreamIndex,pmt)    \
  594.     (This)->lpVtbl -> GetOutputCurrentType(This,dwOutputStreamIndex,pmt)
  595.  
  596. #define IMediaObject_GetInputSizeInfo(This,dwInputStreamIndex,pcbSize,pcbMaxLookahead,pcbAlignment)    \
  597.     (This)->lpVtbl -> GetInputSizeInfo(This,dwInputStreamIndex,pcbSize,pcbMaxLookahead,pcbAlignment)
  598.  
  599. #define IMediaObject_GetOutputSizeInfo(This,dwOutputStreamIndex,pcbSize,pcbAlignment)    \
  600.     (This)->lpVtbl -> GetOutputSizeInfo(This,dwOutputStreamIndex,pcbSize,pcbAlignment)
  601.  
  602. #define IMediaObject_GetInputMaxLatency(This,dwInputStreamIndex,prtMaxLatency)    \
  603.     (This)->lpVtbl -> GetInputMaxLatency(This,dwInputStreamIndex,prtMaxLatency)
  604.  
  605. #define IMediaObject_SetInputMaxLatency(This,dwInputStreamIndex,rtMaxLatency)    \
  606.     (This)->lpVtbl -> SetInputMaxLatency(This,dwInputStreamIndex,rtMaxLatency)
  607.  
  608. #define IMediaObject_Flush(This)    \
  609.     (This)->lpVtbl -> Flush(This)
  610.  
  611. #define IMediaObject_Discontinuity(This,dwInputStreamIndex)    \
  612.     (This)->lpVtbl -> Discontinuity(This,dwInputStreamIndex)
  613.  
  614. #define IMediaObject_AllocateStreamingResources(This)    \
  615.     (This)->lpVtbl -> AllocateStreamingResources(This)
  616.  
  617. #define IMediaObject_FreeStreamingResources(This)    \
  618.     (This)->lpVtbl -> FreeStreamingResources(This)
  619.  
  620. #define IMediaObject_GetInputStatus(This,dwInputStreamIndex,dwFlags)    \
  621.     (This)->lpVtbl -> GetInputStatus(This,dwInputStreamIndex,dwFlags)
  622.  
  623. #define IMediaObject_ProcessInput(This,dwInputStreamIndex,pBuffer,dwFlags,rtTimestamp,rtTimelength)    \
  624.     (This)->lpVtbl -> ProcessInput(This,dwInputStreamIndex,pBuffer,dwFlags,rtTimestamp,rtTimelength)
  625.  
  626. #define IMediaObject_ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputBuffers,pdwStatus)    \
  627.     (This)->lpVtbl -> ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputBuffers,pdwStatus)
  628.  
  629. #define IMediaObject_Lock(This,bLock)    \
  630.     (This)->lpVtbl -> Lock(This,bLock)
  631.  
  632. #endif /* COBJMACROS */
  633.  
  634.  
  635. #endif     /* C style interface */
  636.  
  637.  
  638.  
  639. HRESULT STDMETHODCALLTYPE IMediaObject_GetStreamCount_Proxy( 
  640.     IMediaObject * This,
  641.     /* [out] */ DWORD *pcInputStreams,
  642.     /* [out] */ DWORD *pcOutputStreams);
  643.  
  644.  
  645. void __RPC_STUB IMediaObject_GetStreamCount_Stub(
  646.     IRpcStubBuffer *This,
  647.     IRpcChannelBuffer *_pRpcChannelBuffer,
  648.     PRPC_MESSAGE _pRpcMessage,
  649.     DWORD *_pdwStubPhase);
  650.  
  651.  
  652. HRESULT STDMETHODCALLTYPE IMediaObject_GetInputStreamInfo_Proxy( 
  653.     IMediaObject * This,
  654.     DWORD dwInputStreamIndex,
  655.     /* [out] */ DWORD *pdwFlags);
  656.  
  657.  
  658. void __RPC_STUB IMediaObject_GetInputStreamInfo_Stub(
  659.     IRpcStubBuffer *This,
  660.     IRpcChannelBuffer *_pRpcChannelBuffer,
  661.     PRPC_MESSAGE _pRpcMessage,
  662.     DWORD *_pdwStubPhase);
  663.  
  664.  
  665. HRESULT STDMETHODCALLTYPE IMediaObject_GetOutputStreamInfo_Proxy( 
  666.     IMediaObject * This,
  667.     DWORD dwOutputStreamIndex,
  668.     /* [out] */ DWORD *pdwFlags);
  669.  
  670.  
  671. void __RPC_STUB IMediaObject_GetOutputStreamInfo_Stub(
  672.     IRpcStubBuffer *This,
  673.     IRpcChannelBuffer *_pRpcChannelBuffer,
  674.     PRPC_MESSAGE _pRpcMessage,
  675.     DWORD *_pdwStubPhase);
  676.  
  677.  
  678. HRESULT STDMETHODCALLTYPE IMediaObject_GetInputType_Proxy( 
  679.     IMediaObject * This,
  680.     DWORD dwInputStreamIndex,
  681.     DWORD dwTypeIndex,
  682.     /* [out] */ DMO_MEDIA_TYPE *pmt);
  683.  
  684.  
  685. void __RPC_STUB IMediaObject_GetInputType_Stub(
  686.     IRpcStubBuffer *This,
  687.     IRpcChannelBuffer *_pRpcChannelBuffer,
  688.     PRPC_MESSAGE _pRpcMessage,
  689.     DWORD *_pdwStubPhase);
  690.  
  691.  
  692. HRESULT STDMETHODCALLTYPE IMediaObject_GetOutputType_Proxy( 
  693.     IMediaObject * This,
  694.     DWORD dwOutputStreamIndex,
  695.     DWORD dwTypeIndex,
  696.     /* [out] */ DMO_MEDIA_TYPE *pmt);
  697.  
  698.  
  699. void __RPC_STUB IMediaObject_GetOutputType_Stub(
  700.     IRpcStubBuffer *This,
  701.     IRpcChannelBuffer *_pRpcChannelBuffer,
  702.     PRPC_MESSAGE _pRpcMessage,
  703.     DWORD *_pdwStubPhase);
  704.  
  705.  
  706. HRESULT STDMETHODCALLTYPE IMediaObject_SetInputType_Proxy( 
  707.     IMediaObject * This,
  708.     DWORD dwInputStreamIndex,
  709.     /* [in] */ const DMO_MEDIA_TYPE *pmt,
  710.     DWORD dwFlags);
  711.  
  712.  
  713. void __RPC_STUB IMediaObject_SetInputType_Stub(
  714.     IRpcStubBuffer *This,
  715.     IRpcChannelBuffer *_pRpcChannelBuffer,
  716.     PRPC_MESSAGE _pRpcMessage,
  717.     DWORD *_pdwStubPhase);
  718.  
  719.  
  720. HRESULT STDMETHODCALLTYPE IMediaObject_SetOutputType_Proxy( 
  721.     IMediaObject * This,
  722.     DWORD dwOutputStreamIndex,
  723.     /* [in] */ const DMO_MEDIA_TYPE *pmt,
  724.     DWORD dwFlags);
  725.  
  726.  
  727. void __RPC_STUB IMediaObject_SetOutputType_Stub(
  728.     IRpcStubBuffer *This,
  729.     IRpcChannelBuffer *_pRpcChannelBuffer,
  730.     PRPC_MESSAGE _pRpcMessage,
  731.     DWORD *_pdwStubPhase);
  732.  
  733.  
  734. HRESULT STDMETHODCALLTYPE IMediaObject_GetInputCurrentType_Proxy( 
  735.     IMediaObject * This,
  736.     DWORD dwInputStreamIndex,
  737.     /* [out] */ DMO_MEDIA_TYPE *pmt);
  738.  
  739.  
  740. void __RPC_STUB IMediaObject_GetInputCurrentType_Stub(
  741.     IRpcStubBuffer *This,
  742.     IRpcChannelBuffer *_pRpcChannelBuffer,
  743.     PRPC_MESSAGE _pRpcMessage,
  744.     DWORD *_pdwStubPhase);
  745.  
  746.  
  747. HRESULT STDMETHODCALLTYPE IMediaObject_GetOutputCurrentType_Proxy( 
  748.     IMediaObject * This,
  749.     DWORD dwOutputStreamIndex,
  750.     /* [out] */ DMO_MEDIA_TYPE *pmt);
  751.  
  752.  
  753. void __RPC_STUB IMediaObject_GetOutputCurrentType_Stub(
  754.     IRpcStubBuffer *This,
  755.     IRpcChannelBuffer *_pRpcChannelBuffer,
  756.     PRPC_MESSAGE _pRpcMessage,
  757.     DWORD *_pdwStubPhase);
  758.  
  759.  
  760. HRESULT STDMETHODCALLTYPE IMediaObject_GetInputSizeInfo_Proxy( 
  761.     IMediaObject * This,
  762.     DWORD dwInputStreamIndex,
  763.     /* [out] */ DWORD *pcbSize,
  764.     /* [out] */ DWORD *pcbMaxLookahead,
  765.     /* [out] */ DWORD *pcbAlignment);
  766.  
  767.  
  768. void __RPC_STUB IMediaObject_GetInputSizeInfo_Stub(
  769.     IRpcStubBuffer *This,
  770.     IRpcChannelBuffer *_pRpcChannelBuffer,
  771.     PRPC_MESSAGE _pRpcMessage,
  772.     DWORD *_pdwStubPhase);
  773.  
  774.  
  775. HRESULT STDMETHODCALLTYPE IMediaObject_GetOutputSizeInfo_Proxy( 
  776.     IMediaObject * This,
  777.     DWORD dwOutputStreamIndex,
  778.     /* [out] */ DWORD *pcbSize,
  779.     /* [out] */ DWORD *pcbAlignment);
  780.  
  781.  
  782. void __RPC_STUB IMediaObject_GetOutputSizeInfo_Stub(
  783.     IRpcStubBuffer *This,
  784.     IRpcChannelBuffer *_pRpcChannelBuffer,
  785.     PRPC_MESSAGE _pRpcMessage,
  786.     DWORD *_pdwStubPhase);
  787.  
  788.  
  789. HRESULT STDMETHODCALLTYPE IMediaObject_GetInputMaxLatency_Proxy( 
  790.     IMediaObject * This,
  791.     DWORD dwInputStreamIndex,
  792.     /* [out] */ REFERENCE_TIME *prtMaxLatency);
  793.  
  794.  
  795. void __RPC_STUB IMediaObject_GetInputMaxLatency_Stub(
  796.     IRpcStubBuffer *This,
  797.     IRpcChannelBuffer *_pRpcChannelBuffer,
  798.     PRPC_MESSAGE _pRpcMessage,
  799.     DWORD *_pdwStubPhase);
  800.  
  801.  
  802. HRESULT STDMETHODCALLTYPE IMediaObject_SetInputMaxLatency_Proxy( 
  803.     IMediaObject * This,
  804.     DWORD dwInputStreamIndex,
  805.     REFERENCE_TIME rtMaxLatency);
  806.  
  807.  
  808. void __RPC_STUB IMediaObject_SetInputMaxLatency_Stub(
  809.     IRpcStubBuffer *This,
  810.     IRpcChannelBuffer *_pRpcChannelBuffer,
  811.     PRPC_MESSAGE _pRpcMessage,
  812.     DWORD *_pdwStubPhase);
  813.  
  814.  
  815. HRESULT STDMETHODCALLTYPE IMediaObject_Flush_Proxy( 
  816.     IMediaObject * This);
  817.  
  818.  
  819. void __RPC_STUB IMediaObject_Flush_Stub(
  820.     IRpcStubBuffer *This,
  821.     IRpcChannelBuffer *_pRpcChannelBuffer,
  822.     PRPC_MESSAGE _pRpcMessage,
  823.     DWORD *_pdwStubPhase);
  824.  
  825.  
  826. HRESULT STDMETHODCALLTYPE IMediaObject_Discontinuity_Proxy( 
  827.     IMediaObject * This,
  828.     DWORD dwInputStreamIndex);
  829.  
  830.  
  831. void __RPC_STUB IMediaObject_Discontinuity_Stub(
  832.     IRpcStubBuffer *This,
  833.     IRpcChannelBuffer *_pRpcChannelBuffer,
  834.     PRPC_MESSAGE _pRpcMessage,
  835.     DWORD *_pdwStubPhase);
  836.  
  837.  
  838. HRESULT STDMETHODCALLTYPE IMediaObject_AllocateStreamingResources_Proxy( 
  839.     IMediaObject * This);
  840.  
  841.  
  842. void __RPC_STUB IMediaObject_AllocateStreamingResources_Stub(
  843.     IRpcStubBuffer *This,
  844.     IRpcChannelBuffer *_pRpcChannelBuffer,
  845.     PRPC_MESSAGE _pRpcMessage,
  846.     DWORD *_pdwStubPhase);
  847.  
  848.  
  849. HRESULT STDMETHODCALLTYPE IMediaObject_FreeStreamingResources_Proxy( 
  850.     IMediaObject * This);
  851.  
  852.  
  853. void __RPC_STUB IMediaObject_FreeStreamingResources_Stub(
  854.     IRpcStubBuffer *This,
  855.     IRpcChannelBuffer *_pRpcChannelBuffer,
  856.     PRPC_MESSAGE _pRpcMessage,
  857.     DWORD *_pdwStubPhase);
  858.  
  859.  
  860. HRESULT STDMETHODCALLTYPE IMediaObject_GetInputStatus_Proxy( 
  861.     IMediaObject * This,
  862.     DWORD dwInputStreamIndex,
  863.     /* [out] */ DWORD *dwFlags);
  864.  
  865.  
  866. void __RPC_STUB IMediaObject_GetInputStatus_Stub(
  867.     IRpcStubBuffer *This,
  868.     IRpcChannelBuffer *_pRpcChannelBuffer,
  869.     PRPC_MESSAGE _pRpcMessage,
  870.     DWORD *_pdwStubPhase);
  871.  
  872.  
  873. HRESULT STDMETHODCALLTYPE IMediaObject_ProcessInput_Proxy( 
  874.     IMediaObject * This,
  875.     DWORD dwInputStreamIndex,
  876.     IMediaBuffer *pBuffer,
  877.     DWORD dwFlags,
  878.     REFERENCE_TIME rtTimestamp,
  879.     REFERENCE_TIME rtTimelength);
  880.  
  881.  
  882. void __RPC_STUB IMediaObject_ProcessInput_Stub(
  883.     IRpcStubBuffer *This,
  884.     IRpcChannelBuffer *_pRpcChannelBuffer,
  885.     PRPC_MESSAGE _pRpcMessage,
  886.     DWORD *_pdwStubPhase);
  887.  
  888.  
  889. HRESULT STDMETHODCALLTYPE IMediaObject_ProcessOutput_Proxy( 
  890.     IMediaObject * This,
  891.     DWORD dwFlags,
  892.     DWORD cOutputBufferCount,
  893.     /* [size_is][out][in] */ DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,
  894.     /* [out] */ DWORD *pdwStatus);
  895.  
  896.  
  897. void __RPC_STUB IMediaObject_ProcessOutput_Stub(
  898.     IRpcStubBuffer *This,
  899.     IRpcChannelBuffer *_pRpcChannelBuffer,
  900.     PRPC_MESSAGE _pRpcMessage,
  901.     DWORD *_pdwStubPhase);
  902.  
  903.  
  904. HRESULT STDMETHODCALLTYPE IMediaObject_Lock_Proxy( 
  905.     IMediaObject * This,
  906.     LONG bLock);
  907.  
  908.  
  909. void __RPC_STUB IMediaObject_Lock_Stub(
  910.     IRpcStubBuffer *This,
  911.     IRpcChannelBuffer *_pRpcChannelBuffer,
  912.     PRPC_MESSAGE _pRpcMessage,
  913.     DWORD *_pdwStubPhase);
  914.  
  915.  
  916.  
  917. #endif     /* __IMediaObject_INTERFACE_DEFINED__ */
  918.  
  919.  
  920. #ifndef __IEnumDMO_INTERFACE_DEFINED__
  921. #define __IEnumDMO_INTERFACE_DEFINED__
  922.  
  923. /* interface IEnumDMO */
  924. /* [uuid][object] */ 
  925.  
  926.  
  927. EXTERN_C const IID IID_IEnumDMO;
  928.  
  929. #if defined(__cplusplus) && !defined(CINTERFACE)
  930.     
  931.     MIDL_INTERFACE("2c3cd98a-2bfa-4a53-9c27-5249ba64ba0f")
  932.     IEnumDMO : public IUnknown
  933.     {
  934.     public:
  935.         virtual HRESULT STDMETHODCALLTYPE Next( 
  936.             DWORD cItemsToFetch,
  937.             /* [length_is][size_is][out] */ CLSID *pCLSID,
  938.             /* [string][length_is][size_is][out] */ WCHAR **Names,
  939.             /* [out] */ DWORD *pcItemsFetched) = 0;
  940.         
  941.         virtual HRESULT STDMETHODCALLTYPE Skip( 
  942.             DWORD cItemsToSkip) = 0;
  943.         
  944.         virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  945.         
  946.         virtual HRESULT STDMETHODCALLTYPE Clone( 
  947.             /* [out] */ IEnumDMO **ppEnum) = 0;
  948.         
  949.     };
  950.     
  951. #else     /* C style interface */
  952.  
  953.     typedef struct IEnumDMOVtbl
  954.     {
  955.         BEGIN_INTERFACE
  956.         
  957.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  958.             IEnumDMO * This,
  959.             /* [in] */ REFIID riid,
  960.             /* [iid_is][out] */ void **ppvObject);
  961.         
  962.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  963.             IEnumDMO * This);
  964.         
  965.         ULONG ( STDMETHODCALLTYPE *Release )( 
  966.             IEnumDMO * This);
  967.         
  968.         HRESULT ( STDMETHODCALLTYPE *Next )( 
  969.             IEnumDMO * This,
  970.             DWORD cItemsToFetch,
  971.             /* [length_is][size_is][out] */ CLSID *pCLSID,
  972.             /* [string][length_is][size_is][out] */ WCHAR **Names,
  973.             /* [out] */ DWORD *pcItemsFetched);
  974.         
  975.         HRESULT ( STDMETHODCALLTYPE *Skip )( 
  976.             IEnumDMO * This,
  977.             DWORD cItemsToSkip);
  978.         
  979.         HRESULT ( STDMETHODCALLTYPE *Reset )( 
  980.             IEnumDMO * This);
  981.         
  982.         HRESULT ( STDMETHODCALLTYPE *Clone )( 
  983.             IEnumDMO * This,
  984.             /* [out] */ IEnumDMO **ppEnum);
  985.         
  986.         END_INTERFACE
  987.     } IEnumDMOVtbl;
  988.  
  989.     interface IEnumDMO
  990.     {
  991.         CONST_VTBL struct IEnumDMOVtbl *lpVtbl;
  992.     };
  993.  
  994.     
  995.  
  996. #ifdef COBJMACROS
  997.  
  998.  
  999. #define IEnumDMO_QueryInterface(This,riid,ppvObject)    \
  1000.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1001.  
  1002. #define IEnumDMO_AddRef(This)    \
  1003.     (This)->lpVtbl -> AddRef(This)
  1004.  
  1005. #define IEnumDMO_Release(This)    \
  1006.     (This)->lpVtbl -> Release(This)
  1007.  
  1008.  
  1009. #define IEnumDMO_Next(This,cItemsToFetch,pCLSID,Names,pcItemsFetched)    \
  1010.     (This)->lpVtbl -> Next(This,cItemsToFetch,pCLSID,Names,pcItemsFetched)
  1011.  
  1012. #define IEnumDMO_Skip(This,cItemsToSkip)    \
  1013.     (This)->lpVtbl -> Skip(This,cItemsToSkip)
  1014.  
  1015. #define IEnumDMO_Reset(This)    \
  1016.     (This)->lpVtbl -> Reset(This)
  1017.  
  1018. #define IEnumDMO_Clone(This,ppEnum)    \
  1019.     (This)->lpVtbl -> Clone(This,ppEnum)
  1020.  
  1021. #endif /* COBJMACROS */
  1022.  
  1023.  
  1024. #endif     /* C style interface */
  1025.  
  1026.  
  1027.  
  1028. HRESULT STDMETHODCALLTYPE IEnumDMO_Next_Proxy( 
  1029.     IEnumDMO * This,
  1030.     DWORD cItemsToFetch,
  1031.     /* [length_is][size_is][out] */ CLSID *pCLSID,
  1032.     /* [string][length_is][size_is][out] */ WCHAR **Names,
  1033.     /* [out] */ DWORD *pcItemsFetched);
  1034.  
  1035.  
  1036. void __RPC_STUB IEnumDMO_Next_Stub(
  1037.     IRpcStubBuffer *This,
  1038.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1039.     PRPC_MESSAGE _pRpcMessage,
  1040.     DWORD *_pdwStubPhase);
  1041.  
  1042.  
  1043. HRESULT STDMETHODCALLTYPE IEnumDMO_Skip_Proxy( 
  1044.     IEnumDMO * This,
  1045.     DWORD cItemsToSkip);
  1046.  
  1047.  
  1048. void __RPC_STUB IEnumDMO_Skip_Stub(
  1049.     IRpcStubBuffer *This,
  1050.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1051.     PRPC_MESSAGE _pRpcMessage,
  1052.     DWORD *_pdwStubPhase);
  1053.  
  1054.  
  1055. HRESULT STDMETHODCALLTYPE IEnumDMO_Reset_Proxy( 
  1056.     IEnumDMO * This);
  1057.  
  1058.  
  1059. void __RPC_STUB IEnumDMO_Reset_Stub(
  1060.     IRpcStubBuffer *This,
  1061.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1062.     PRPC_MESSAGE _pRpcMessage,
  1063.     DWORD *_pdwStubPhase);
  1064.  
  1065.  
  1066. HRESULT STDMETHODCALLTYPE IEnumDMO_Clone_Proxy( 
  1067.     IEnumDMO * This,
  1068.     /* [out] */ IEnumDMO **ppEnum);
  1069.  
  1070.  
  1071. void __RPC_STUB IEnumDMO_Clone_Stub(
  1072.     IRpcStubBuffer *This,
  1073.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1074.     PRPC_MESSAGE _pRpcMessage,
  1075.     DWORD *_pdwStubPhase);
  1076.  
  1077.  
  1078.  
  1079. #endif     /* __IEnumDMO_INTERFACE_DEFINED__ */
  1080.  
  1081.  
  1082. /* interface __MIDL_itf_mediaobj_0091 */
  1083. /* [local] */ 
  1084.  
  1085.  
  1086. enum _DMO_INPLACE_PROCESS_FLAGS
  1087.     {    DMO_INPLACE_NORMAL    = 0,
  1088.     DMO_INPLACE_ZERO    = 0x1
  1089.     } ;
  1090.  
  1091.  
  1092. extern RPC_IF_HANDLE __MIDL_itf_mediaobj_0091_v0_0_c_ifspec;
  1093. extern RPC_IF_HANDLE __MIDL_itf_mediaobj_0091_v0_0_s_ifspec;
  1094.  
  1095. #ifndef __IMediaObjectInPlace_INTERFACE_DEFINED__
  1096. #define __IMediaObjectInPlace_INTERFACE_DEFINED__
  1097.  
  1098. /* interface IMediaObjectInPlace */
  1099. /* [uuid][object] */ 
  1100.  
  1101.  
  1102. EXTERN_C const IID IID_IMediaObjectInPlace;
  1103.  
  1104. #if defined(__cplusplus) && !defined(CINTERFACE)
  1105.     
  1106.     MIDL_INTERFACE("651b9ad0-0fc7-4aa9-9538-d89931010741")
  1107.     IMediaObjectInPlace : public IUnknown
  1108.     {
  1109.     public:
  1110.         virtual HRESULT STDMETHODCALLTYPE Process( 
  1111.             /* [in] */ ULONG ulSize,
  1112.             /* [size_is][out][in] */ BYTE *pData,
  1113.             /* [in] */ REFERENCE_TIME refTimeStart,
  1114.             /* [in] */ DWORD dwFlags) = 0;
  1115.         
  1116.         virtual HRESULT STDMETHODCALLTYPE Clone( 
  1117.             /* [out] */ IMediaObjectInPlace **ppMediaObject) = 0;
  1118.         
  1119.         virtual HRESULT STDMETHODCALLTYPE GetLatency( 
  1120.             /* [out] */ REFERENCE_TIME *pLatencyTime) = 0;
  1121.         
  1122.     };
  1123.     
  1124. #else     /* C style interface */
  1125.  
  1126.     typedef struct IMediaObjectInPlaceVtbl
  1127.     {
  1128.         BEGIN_INTERFACE
  1129.         
  1130.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1131.             IMediaObjectInPlace * This,
  1132.             /* [in] */ REFIID riid,
  1133.             /* [iid_is][out] */ void **ppvObject);
  1134.         
  1135.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1136.             IMediaObjectInPlace * This);
  1137.         
  1138.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1139.             IMediaObjectInPlace * This);
  1140.         
  1141.         HRESULT ( STDMETHODCALLTYPE *Process )( 
  1142.             IMediaObjectInPlace * This,
  1143.             /* [in] */ ULONG ulSize,
  1144.             /* [size_is][out][in] */ BYTE *pData,
  1145.             /* [in] */ REFERENCE_TIME refTimeStart,
  1146.             /* [in] */ DWORD dwFlags);
  1147.         
  1148.         HRESULT ( STDMETHODCALLTYPE *Clone )( 
  1149.             IMediaObjectInPlace * This,
  1150.             /* [out] */ IMediaObjectInPlace **ppMediaObject);
  1151.         
  1152.         HRESULT ( STDMETHODCALLTYPE *GetLatency )( 
  1153.             IMediaObjectInPlace * This,
  1154.             /* [out] */ REFERENCE_TIME *pLatencyTime);
  1155.         
  1156.         END_INTERFACE
  1157.     } IMediaObjectInPlaceVtbl;
  1158.  
  1159.     interface IMediaObjectInPlace
  1160.     {
  1161.         CONST_VTBL struct IMediaObjectInPlaceVtbl *lpVtbl;
  1162.     };
  1163.  
  1164.     
  1165.  
  1166. #ifdef COBJMACROS
  1167.  
  1168.  
  1169. #define IMediaObjectInPlace_QueryInterface(This,riid,ppvObject)    \
  1170.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1171.  
  1172. #define IMediaObjectInPlace_AddRef(This)    \
  1173.     (This)->lpVtbl -> AddRef(This)
  1174.  
  1175. #define IMediaObjectInPlace_Release(This)    \
  1176.     (This)->lpVtbl -> Release(This)
  1177.  
  1178.  
  1179. #define IMediaObjectInPlace_Process(This,ulSize,pData,refTimeStart,dwFlags)    \
  1180.     (This)->lpVtbl -> Process(This,ulSize,pData,refTimeStart,dwFlags)
  1181.  
  1182. #define IMediaObjectInPlace_Clone(This,ppMediaObject)    \
  1183.     (This)->lpVtbl -> Clone(This,ppMediaObject)
  1184.  
  1185. #define IMediaObjectInPlace_GetLatency(This,pLatencyTime)    \
  1186.     (This)->lpVtbl -> GetLatency(This,pLatencyTime)
  1187.  
  1188. #endif /* COBJMACROS */
  1189.  
  1190.  
  1191. #endif     /* C style interface */
  1192.  
  1193.  
  1194.  
  1195. HRESULT STDMETHODCALLTYPE IMediaObjectInPlace_Process_Proxy( 
  1196.     IMediaObjectInPlace * This,
  1197.     /* [in] */ ULONG ulSize,
  1198.     /* [size_is][out][in] */ BYTE *pData,
  1199.     /* [in] */ REFERENCE_TIME refTimeStart,
  1200.     /* [in] */ DWORD dwFlags);
  1201.  
  1202.  
  1203. void __RPC_STUB IMediaObjectInPlace_Process_Stub(
  1204.     IRpcStubBuffer *This,
  1205.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1206.     PRPC_MESSAGE _pRpcMessage,
  1207.     DWORD *_pdwStubPhase);
  1208.  
  1209.  
  1210. HRESULT STDMETHODCALLTYPE IMediaObjectInPlace_Clone_Proxy( 
  1211.     IMediaObjectInPlace * This,
  1212.     /* [out] */ IMediaObjectInPlace **ppMediaObject);
  1213.  
  1214.  
  1215. void __RPC_STUB IMediaObjectInPlace_Clone_Stub(
  1216.     IRpcStubBuffer *This,
  1217.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1218.     PRPC_MESSAGE _pRpcMessage,
  1219.     DWORD *_pdwStubPhase);
  1220.  
  1221.  
  1222. HRESULT STDMETHODCALLTYPE IMediaObjectInPlace_GetLatency_Proxy( 
  1223.     IMediaObjectInPlace * This,
  1224.     /* [out] */ REFERENCE_TIME *pLatencyTime);
  1225.  
  1226.  
  1227. void __RPC_STUB IMediaObjectInPlace_GetLatency_Stub(
  1228.     IRpcStubBuffer *This,
  1229.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1230.     PRPC_MESSAGE _pRpcMessage,
  1231.     DWORD *_pdwStubPhase);
  1232.  
  1233.  
  1234.  
  1235. #endif     /* __IMediaObjectInPlace_INTERFACE_DEFINED__ */
  1236.  
  1237.  
  1238. /* interface __MIDL_itf_mediaobj_0092 */
  1239. /* [local] */ 
  1240.  
  1241.  
  1242. enum _DMO_QUALITY_STATUS_FLAGS
  1243.     {    DMO_QUALITY_STATUS_ENABLED    = 0x1
  1244.     } ;
  1245.  
  1246.  
  1247. extern RPC_IF_HANDLE __MIDL_itf_mediaobj_0092_v0_0_c_ifspec;
  1248. extern RPC_IF_HANDLE __MIDL_itf_mediaobj_0092_v0_0_s_ifspec;
  1249.  
  1250. #ifndef __IDMOQualityControl_INTERFACE_DEFINED__
  1251. #define __IDMOQualityControl_INTERFACE_DEFINED__
  1252.  
  1253. /* interface IDMOQualityControl */
  1254. /* [uuid][object] */ 
  1255.  
  1256.  
  1257. EXTERN_C const IID IID_IDMOQualityControl;
  1258.  
  1259. #if defined(__cplusplus) && !defined(CINTERFACE)
  1260.     
  1261.     MIDL_INTERFACE("65abea96-cf36-453f-af8a-705e98f16260")
  1262.     IDMOQualityControl : public IUnknown
  1263.     {
  1264.     public:
  1265.         virtual HRESULT STDMETHODCALLTYPE SetNow( 
  1266.             /* [in] */ REFERENCE_TIME rtNow) = 0;
  1267.         
  1268.         virtual HRESULT STDMETHODCALLTYPE SetStatus( 
  1269.             /* [in] */ DWORD dwFlags) = 0;
  1270.         
  1271.         virtual HRESULT STDMETHODCALLTYPE GetStatus( 
  1272.             /* [out] */ DWORD *pdwFlags) = 0;
  1273.         
  1274.     };
  1275.     
  1276. #else     /* C style interface */
  1277.  
  1278.     typedef struct IDMOQualityControlVtbl
  1279.     {
  1280.         BEGIN_INTERFACE
  1281.         
  1282.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1283.             IDMOQualityControl * This,
  1284.             /* [in] */ REFIID riid,
  1285.             /* [iid_is][out] */ void **ppvObject);
  1286.         
  1287.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1288.             IDMOQualityControl * This);
  1289.         
  1290.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1291.             IDMOQualityControl * This);
  1292.         
  1293.         HRESULT ( STDMETHODCALLTYPE *SetNow )( 
  1294.             IDMOQualityControl * This,
  1295.             /* [in] */ REFERENCE_TIME rtNow);
  1296.         
  1297.         HRESULT ( STDMETHODCALLTYPE *SetStatus )( 
  1298.             IDMOQualityControl * This,
  1299.             /* [in] */ DWORD dwFlags);
  1300.         
  1301.         HRESULT ( STDMETHODCALLTYPE *GetStatus )( 
  1302.             IDMOQualityControl * This,
  1303.             /* [out] */ DWORD *pdwFlags);
  1304.         
  1305.         END_INTERFACE
  1306.     } IDMOQualityControlVtbl;
  1307.  
  1308.     interface IDMOQualityControl
  1309.     {
  1310.         CONST_VTBL struct IDMOQualityControlVtbl *lpVtbl;
  1311.     };
  1312.  
  1313.     
  1314.  
  1315. #ifdef COBJMACROS
  1316.  
  1317.  
  1318. #define IDMOQualityControl_QueryInterface(This,riid,ppvObject)    \
  1319.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1320.  
  1321. #define IDMOQualityControl_AddRef(This)    \
  1322.     (This)->lpVtbl -> AddRef(This)
  1323.  
  1324. #define IDMOQualityControl_Release(This)    \
  1325.     (This)->lpVtbl -> Release(This)
  1326.  
  1327.  
  1328. #define IDMOQualityControl_SetNow(This,rtNow)    \
  1329.     (This)->lpVtbl -> SetNow(This,rtNow)
  1330.  
  1331. #define IDMOQualityControl_SetStatus(This,dwFlags)    \
  1332.     (This)->lpVtbl -> SetStatus(This,dwFlags)
  1333.  
  1334. #define IDMOQualityControl_GetStatus(This,pdwFlags)    \
  1335.     (This)->lpVtbl -> GetStatus(This,pdwFlags)
  1336.  
  1337. #endif /* COBJMACROS */
  1338.  
  1339.  
  1340. #endif     /* C style interface */
  1341.  
  1342.  
  1343.  
  1344. HRESULT STDMETHODCALLTYPE IDMOQualityControl_SetNow_Proxy( 
  1345.     IDMOQualityControl * This,
  1346.     /* [in] */ REFERENCE_TIME rtNow);
  1347.  
  1348.  
  1349. void __RPC_STUB IDMOQualityControl_SetNow_Stub(
  1350.     IRpcStubBuffer *This,
  1351.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1352.     PRPC_MESSAGE _pRpcMessage,
  1353.     DWORD *_pdwStubPhase);
  1354.  
  1355.  
  1356. HRESULT STDMETHODCALLTYPE IDMOQualityControl_SetStatus_Proxy( 
  1357.     IDMOQualityControl * This,
  1358.     /* [in] */ DWORD dwFlags);
  1359.  
  1360.  
  1361. void __RPC_STUB IDMOQualityControl_SetStatus_Stub(
  1362.     IRpcStubBuffer *This,
  1363.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1364.     PRPC_MESSAGE _pRpcMessage,
  1365.     DWORD *_pdwStubPhase);
  1366.  
  1367.  
  1368. HRESULT STDMETHODCALLTYPE IDMOQualityControl_GetStatus_Proxy( 
  1369.     IDMOQualityControl * This,
  1370.     /* [out] */ DWORD *pdwFlags);
  1371.  
  1372.  
  1373. void __RPC_STUB IDMOQualityControl_GetStatus_Stub(
  1374.     IRpcStubBuffer *This,
  1375.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1376.     PRPC_MESSAGE _pRpcMessage,
  1377.     DWORD *_pdwStubPhase);
  1378.  
  1379.  
  1380.  
  1381. #endif     /* __IDMOQualityControl_INTERFACE_DEFINED__ */
  1382.  
  1383.  
  1384. /* interface __MIDL_itf_mediaobj_0093 */
  1385. /* [local] */ 
  1386.  
  1387.  
  1388. enum _DMO_VIDEO_OUTPUT_STREAM_FLAGS
  1389.     {    DMO_VOSF_NEEDS_PREVIOUS_SAMPLE    = 0x1
  1390.     } ;
  1391.  
  1392.  
  1393. extern RPC_IF_HANDLE __MIDL_itf_mediaobj_0093_v0_0_c_ifspec;
  1394. extern RPC_IF_HANDLE __MIDL_itf_mediaobj_0093_v0_0_s_ifspec;
  1395.  
  1396. #ifndef __IDMOVideoOutputOptimizations_INTERFACE_DEFINED__
  1397. #define __IDMOVideoOutputOptimizations_INTERFACE_DEFINED__
  1398.  
  1399. /* interface IDMOVideoOutputOptimizations */
  1400. /* [uuid][object] */ 
  1401.  
  1402.  
  1403. EXTERN_C const IID IID_IDMOVideoOutputOptimizations;
  1404.  
  1405. #if defined(__cplusplus) && !defined(CINTERFACE)
  1406.     
  1407.     MIDL_INTERFACE("be8f4f4e-5b16-4d29-b350-7f6b5d9298ac")
  1408.     IDMOVideoOutputOptimizations : public IUnknown
  1409.     {
  1410.     public:
  1411.         virtual HRESULT STDMETHODCALLTYPE QueryOperationModePreferences( 
  1412.             ULONG ulOutputStreamIndex,
  1413.             DWORD *pdwRequestedCapabilities) = 0;
  1414.         
  1415.         virtual HRESULT STDMETHODCALLTYPE SetOperationMode( 
  1416.             ULONG ulOutputStreamIndex,
  1417.             DWORD dwEnabledFeatures) = 0;
  1418.         
  1419.         virtual HRESULT STDMETHODCALLTYPE GetCurrentOperationMode( 
  1420.             ULONG ulOutputStreamIndex,
  1421.             DWORD *pdwEnabledFeatures) = 0;
  1422.         
  1423.         virtual HRESULT STDMETHODCALLTYPE GetCurrentSampleRequirements( 
  1424.             ULONG ulOutputStreamIndex,
  1425.             DWORD *pdwRequestedFeatures) = 0;
  1426.         
  1427.     };
  1428.     
  1429. #else     /* C style interface */
  1430.  
  1431.     typedef struct IDMOVideoOutputOptimizationsVtbl
  1432.     {
  1433.         BEGIN_INTERFACE
  1434.         
  1435.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1436.             IDMOVideoOutputOptimizations * This,
  1437.             /* [in] */ REFIID riid,
  1438.             /* [iid_is][out] */ void **ppvObject);
  1439.         
  1440.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1441.             IDMOVideoOutputOptimizations * This);
  1442.         
  1443.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1444.             IDMOVideoOutputOptimizations * This);
  1445.         
  1446.         HRESULT ( STDMETHODCALLTYPE *QueryOperationModePreferences )( 
  1447.             IDMOVideoOutputOptimizations * This,
  1448.             ULONG ulOutputStreamIndex,
  1449.             DWORD *pdwRequestedCapabilities);
  1450.         
  1451.         HRESULT ( STDMETHODCALLTYPE *SetOperationMode )( 
  1452.             IDMOVideoOutputOptimizations * This,
  1453.             ULONG ulOutputStreamIndex,
  1454.             DWORD dwEnabledFeatures);
  1455.         
  1456.         HRESULT ( STDMETHODCALLTYPE *GetCurrentOperationMode )( 
  1457.             IDMOVideoOutputOptimizations * This,
  1458.             ULONG ulOutputStreamIndex,
  1459.             DWORD *pdwEnabledFeatures);
  1460.         
  1461.         HRESULT ( STDMETHODCALLTYPE *GetCurrentSampleRequirements )( 
  1462.             IDMOVideoOutputOptimizations * This,
  1463.             ULONG ulOutputStreamIndex,
  1464.             DWORD *pdwRequestedFeatures);
  1465.         
  1466.         END_INTERFACE
  1467.     } IDMOVideoOutputOptimizationsVtbl;
  1468.  
  1469.     interface IDMOVideoOutputOptimizations
  1470.     {
  1471.         CONST_VTBL struct IDMOVideoOutputOptimizationsVtbl *lpVtbl;
  1472.     };
  1473.  
  1474.     
  1475.  
  1476. #ifdef COBJMACROS
  1477.  
  1478.  
  1479. #define IDMOVideoOutputOptimizations_QueryInterface(This,riid,ppvObject)    \
  1480.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1481.  
  1482. #define IDMOVideoOutputOptimizations_AddRef(This)    \
  1483.     (This)->lpVtbl -> AddRef(This)
  1484.  
  1485. #define IDMOVideoOutputOptimizations_Release(This)    \
  1486.     (This)->lpVtbl -> Release(This)
  1487.  
  1488.  
  1489. #define IDMOVideoOutputOptimizations_QueryOperationModePreferences(This,ulOutputStreamIndex,pdwRequestedCapabilities)    \
  1490.     (This)->lpVtbl -> QueryOperationModePreferences(This,ulOutputStreamIndex,pdwRequestedCapabilities)
  1491.  
  1492. #define IDMOVideoOutputOptimizations_SetOperationMode(This,ulOutputStreamIndex,dwEnabledFeatures)    \
  1493.     (This)->lpVtbl -> SetOperationMode(This,ulOutputStreamIndex,dwEnabledFeatures)
  1494.  
  1495. #define IDMOVideoOutputOptimizations_GetCurrentOperationMode(This,ulOutputStreamIndex,pdwEnabledFeatures)    \
  1496.     (This)->lpVtbl -> GetCurrentOperationMode(This,ulOutputStreamIndex,pdwEnabledFeatures)
  1497.  
  1498. #define IDMOVideoOutputOptimizations_GetCurrentSampleRequirements(This,ulOutputStreamIndex,pdwRequestedFeatures)    \
  1499.     (This)->lpVtbl -> GetCurrentSampleRequirements(This,ulOutputStreamIndex,pdwRequestedFeatures)
  1500.  
  1501. #endif /* COBJMACROS */
  1502.  
  1503.  
  1504. #endif     /* C style interface */
  1505.  
  1506.  
  1507.  
  1508. HRESULT STDMETHODCALLTYPE IDMOVideoOutputOptimizations_QueryOperationModePreferences_Proxy( 
  1509.     IDMOVideoOutputOptimizations * This,
  1510.     ULONG ulOutputStreamIndex,
  1511.     DWORD *pdwRequestedCapabilities);
  1512.  
  1513.  
  1514. void __RPC_STUB IDMOVideoOutputOptimizations_QueryOperationModePreferences_Stub(
  1515.     IRpcStubBuffer *This,
  1516.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1517.     PRPC_MESSAGE _pRpcMessage,
  1518.     DWORD *_pdwStubPhase);
  1519.  
  1520.  
  1521. HRESULT STDMETHODCALLTYPE IDMOVideoOutputOptimizations_SetOperationMode_Proxy( 
  1522.     IDMOVideoOutputOptimizations * This,
  1523.     ULONG ulOutputStreamIndex,
  1524.     DWORD dwEnabledFeatures);
  1525.  
  1526.  
  1527. void __RPC_STUB IDMOVideoOutputOptimizations_SetOperationMode_Stub(
  1528.     IRpcStubBuffer *This,
  1529.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1530.     PRPC_MESSAGE _pRpcMessage,
  1531.     DWORD *_pdwStubPhase);
  1532.  
  1533.  
  1534. HRESULT STDMETHODCALLTYPE IDMOVideoOutputOptimizations_GetCurrentOperationMode_Proxy( 
  1535.     IDMOVideoOutputOptimizations * This,
  1536.     ULONG ulOutputStreamIndex,
  1537.     DWORD *pdwEnabledFeatures);
  1538.  
  1539.  
  1540. void __RPC_STUB IDMOVideoOutputOptimizations_GetCurrentOperationMode_Stub(
  1541.     IRpcStubBuffer *This,
  1542.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1543.     PRPC_MESSAGE _pRpcMessage,
  1544.     DWORD *_pdwStubPhase);
  1545.  
  1546.  
  1547. HRESULT STDMETHODCALLTYPE IDMOVideoOutputOptimizations_GetCurrentSampleRequirements_Proxy( 
  1548.     IDMOVideoOutputOptimizations * This,
  1549.     ULONG ulOutputStreamIndex,
  1550.     DWORD *pdwRequestedFeatures);
  1551.  
  1552.  
  1553. void __RPC_STUB IDMOVideoOutputOptimizations_GetCurrentSampleRequirements_Stub(
  1554.     IRpcStubBuffer *This,
  1555.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1556.     PRPC_MESSAGE _pRpcMessage,
  1557.     DWORD *_pdwStubPhase);
  1558.  
  1559.  
  1560.  
  1561. #endif     /* __IDMOVideoOutputOptimizations_INTERFACE_DEFINED__ */
  1562.  
  1563.  
  1564. /* Additional Prototypes for ALL interfaces */
  1565.  
  1566. /* end of Additional Prototypes */
  1567.  
  1568. #ifdef __cplusplus
  1569. }
  1570. #endif
  1571.  
  1572. #endif
  1573.  
  1574.  
  1575.